Skip to content

Conversation

harshitrwt
Copy link

This PR introduces HNSW vector index support for qdrant, allowing users to create collections with fully configurable vector indexes.

  • Enabled per-field vector metric configuration (Cosine, L2, InnerProduct).
  • Enhanced SetupState and SetupChange to manage collection creation, deletion, and updates with vector indexes.
  • Validates vector fields for fixed dimensions; unsupported vectors are stored in payload.
  • Export mutations now correctly convert typed values into DenseVector or MultiDenseVector.
  • Cached Qdrant clients per connection for efficient repeated operations.
  • Clear error handling for unsupported vector index methods or duplicate vector index definitions.

fixes #1052

@badmonster0
Copy link
Member

badmonster0 commented Oct 3, 2025

@harshitrwt please follow the following example -

https://cocoindex.io/docs/examples/simple_vector_index

Change it to Qdrant, And attach a screenshot for the test before we merge it.

if you have any question please let us know! (You can always find us https://discord.com/invite/zpA9S2DR7s for live chat too)

@harshitrwt harshitrwt force-pushed the feature/qdrant-vector-index-method branch from f2edd3e to 65a1002 Compare October 6, 2025 14:26
@harshitrwt
Copy link
Author

Hi @badmonster0,
I've taken some screenshots related to the Qdrant integration. Could you please take a look and review them before I make an additional commit and create the PR for adding the examples?

Also, if possible, could you assign the issue back to me and add the hacktoberfest-accepted label?
Thanks

Here are the screenshots i have achieved with qdrant.

Screenshot 2025-10-09 131743 Screenshot 2025-10-09 131758 Screenshot 2025-10-09 131819

@badmonster0
Copy link
Member

@harshitrwt you are assigned with the issue, we will tag hacktober-accepted once the PR is merged, thanks! will get it back to you shortly on the review

@badmonster0
Copy link
Member

thanks a lot for the testing and screenshot!

'targets/lancedb',
'targets/neo4j',
'targets/kuzu',

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is unnecessary.

if let Some(method) = &vector_index.method {
match method {
spec::VectorIndexMethod::Hnsw { .. } |
spec::VectorIndexMethod::IvfFlat { .. } => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's raise an error here for unsupported index type (IvfFlat), as build() happens earlier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] support VectorIndexMethod in qdrant

3 participants